// axios二次封装
import axios from 'axios'
const server='http://localhost:8080'
export function request(config){
    // 创建一个 axios 实例，配置基础参数
    const instance=axios.create({
        baseURL:server,
        timeout:15000,
        withCredentials:false,
        headers:{'Content-Type':'application/x-www-form-urlencoded'},
    });
      // 添加请求拦截器（在请求发出前处理）
      instance.interceptors.request.use(config=>{
        config.headers['Authorization']='Bearer'+' '+sessionStorage.getItem('token');
        return config;
      },error=>{
        return Promise.reject(error);
      })
    //  添加响应拦截器（在接收到响应后处理）
    instance.interceptors.response.use(response=>{
        return response.data;
    },error=>{
        let status=error.response?.status;
        if (status) {
            switch (status) {
              case 400:
                error.message = "请求错误(400)";
                break;
              case 401:
                error.message = "未授权，请重新登录(401)";
                // this.router.push("/login");
                break;
              case 403:
                error.message = "拒绝访问(403)";
                break;
              case 404:
                error.message = "请求出错(404)";
                // this.router.push("/404");
                break;
              case 408:
                error.message = "请求超时(408)";
                break;
              case 500:
                error.message = "服务器错误(500)";
                // this.router.push("/a500");
                break;
              case 501:
                error.message = "服务未实现(501)";
                break;
              case 502:
                error.message = "网络错误(502)";
                break;
              case 503:
                error.message = "服务不可用(503)";
                break;
              case 504:
                error.message = "网络超时(504)";
                break;
              case 505:
                error.message = "HTTP版本不受支持(505)";
                break;
              default:
                error.message = `连接出错!`;
            }
            console.log(error.message)
          } else {
            error.message = "连接服务器失败!,这里";
          }
          return Promise.reject(error);
    });
    return instance(config);
}
    // 封装 GET 请求
    export function getdata(myurl,mydata,mymethod='GET'){
        return request({
            url:server+myurl,
            method:mymethod,
            params:mydata,
        })
    }
    // 封装 POST/PUT 等请求（发送 JSON 数据）
    export function execdata(myurl,mydata,mymethod='POST'){
        return request({
            url:server+myurl,
            method:mymethod,
            data:mydata,
            headers:{'Content-Type':'application/json;charset=UTF-8'},
        })
    }
